package com.jd.jr.insights.dm.dim.dao.impl;


import com.jd.jr.insights.dm.dim.dao.BizDao;
import com.jd.jr.insights.dm.dim.dao.model.JfDimBiz;
import com.jd.jr.insights.dm.dim.domain.Business;
import com.jd.jr.insights.dm.dim.util.fastjson.tree.ITreeNode;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 * Created by guoxuefei1 on 2017/7/18.
 */
public class BizDaoImpl implements BizDao {

    public List<ITreeNode> getList() {
        List<JfDimBiz>JfDimBizs = JfDimBiz.dao.find("select * from jf_dim_biz where is_valid=1");
        List<ITreeNode> bizs=new ArrayList<ITreeNode>(JfDimBizs.size());
        Iterator<JfDimBiz> inter=JfDimBizs.iterator();
        while(inter.hasNext()){
            JfDimBiz bizM=inter.next();
            Business biz=new Business (bizM.getBizId()
                    ,bizM.getCode()
                    ,bizM.getValue()
                    ,bizM.getDesc()
                    ,bizM.getLevel()
                    ,bizM.getParentId()
                    ,bizM.getIsValid()
                    ,bizM.getCreatedTime()
                    ,bizM.getUpdatedTime()
            );
            bizs.add(biz);
        }

        return bizs;
    }

    public Boolean deleteById(Business biz) {
        JfDimBiz daoa=JfDimBiz.dao.findById(biz.getBiz_id());
        daoa.setIsValid(0);
        daoa.setUpdatedTime(new Date());
        Boolean result=daoa.update();
        return result;
    }

    public Boolean update(Business biz) {
        JfDimBiz daoa=JfDimBiz.dao.findById(biz.getBiz_id());
        daoa.setCode(biz.getCode());
        daoa.setValue(biz.getValue());
        daoa.setDesc(biz.getDesc());
        daoa.setUpdatedTime(new Date());
        Boolean result=daoa.update();


        return result;
    }

    public Boolean save(Business biz) {
        JfDimBiz daoa=new JfDimBiz();
        daoa.setCode(biz.getCode());
        daoa.setValue(biz.getValue());
        daoa.setDesc(biz.getDesc());
        daoa.setLevel(biz.getLevel());
        daoa.setIsValid(1);
        daoa.setParentId(biz.getParent_id());
        daoa.setCreatedTime(new Date());
        daoa.setUpdatedTime(new Date());
        Boolean result=daoa.save();
        return result;
    }

}
